home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 11 / FM Towns Free Software Collection 11.iso / t_os / tool / artemis1 / src / poly.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-10-11  |  871 b   |  49 lines

  1. /*
  2.     ARTemis (Graphic Editor for FM-TOWNS)
  3.     (c) MATSUUCHI Ryosuke 1992,1993
  4.  
  5.     poly.c
  6.  
  7.     「ポリゴン」コマンド
  8. */
  9.  
  10.  
  11. #include <stdio.h>
  12. #include "ge.h"
  13. #include "imageman.h"
  14. #include "dispman.h"
  15.  
  16.  
  17. void cmd_polygon()
  18. {
  19.     for (;;)
  20.     {
  21.         if (area_input(AREA_POLYGON) != 0)
  22.             break;
  23.         EIMbackup();
  24.         int ax1,ay1,ax2,ay2;
  25.         area_getboundxy(&ax1,&ay1,&ax2,&ay2);
  26.         int x,y,mix;
  27.         mix = getmixrate();
  28.         ax1 = _lim(ax1, 0, EIMgetxsize());
  29.         ax2 = _lim(ax2, 0, EIMgetxsize());
  30.         ay1 = _lim(ay1, 0, EIMgetysize());
  31.         ay2 = _lim(ay2, 0, EIMgetysize());
  32.         for (y=ay1; y<=ay2; y++)
  33.         {
  34.             x = ax1 + area_chkxylen(ax1,ax2,y,YES);
  35.             while (x<=ax2)
  36.             {
  37.                 int l;
  38.                 if ((l = area_chkxylen(x,ax2,y,NO)) == 0)
  39.                     break;
  40.                 EIMgrayhline(x,x+l-1,y,forecol,mix,NO);
  41.                 x += l + area_chkxylen(x+l,ax2,y,YES);
  42.             }
  43.         }
  44.     }
  45. }
  46.  
  47.  
  48. /* end of poly.c */
  49.